Exception Logging এবং Debugging Techniques Apex-এ কোডের ত্রুটি শনাক্ত ও নির্ধারণ করতে সাহায্য করে। Logging এবং Debugging-এর মাধ্যমে প্রোগ্রামের কাজের ধারা বোঝা যায় এবং সমস্যার উৎস ও সমাধানের জন্য প্রয়োজনীয় তথ্য পাওয়া যায়।
Exception Logging হলো Exception Handling-এর সময় ত্রুটি বা ব্যতিক্রমের তথ্য সংরক্ষণ করার প্রক্রিয়া। এটি প্রোগ্রাম চলাকালীন ত্রুটির বিস্তারিত তথ্য প্রদান করে, যা পরবর্তীতে সমস্যা সমাধানে সাহায্য করে। Apex-এ Exception Logging-এর জন্য সাধারণত System.debug()
এবং Custom Logging মেকানিজম ব্যবহার করা হয়।
নিচের উদাহরণে Exception Handling-এর মাধ্যমে Exception Logging করা হয়েছে।
public class ExceptionLoggerExample {
public void divideNumbers(Integer a, Integer b) {
try {
Integer result = a / b;
System.debug('Result: ' + result);
} catch (ArithmeticException e) {
System.debug('Error: Cannot divide by zero.');
System.debug('Exception Message: ' + e.getMessage());
System.debug('Stack Trace: ' + e.getStackTraceString());
}
}
}
getMessage()
এবং getStackTraceString()
মেথডের মাধ্যমে ত্রুটির বিবরণ ও Stack Trace প্রিন্ট করা হয়েছে।Apex-এ Custom Logging-এর মাধ্যমে Exception Logging আরও উন্নত করা যায়, যেখানে লগ রেকর্ড ডাটাবেজে সংরক্ষণ করা যায় অথবা ইমেল, External API কল ইত্যাদির মাধ্যমে লগ পাঠানো যায়।
নিচের উদাহরণে Log__c
নামে একটি Custom Object-এ লগ সংরক্ষণ করা হয়েছে।
public class CustomLogger {
public static void logException(Exception e) {
Log__c log = new Log__c();
log.Exception_Message__c = e.getMessage();
log.Stack_Trace__c = e.getStackTraceString();
log.Log_Time__c = DateTime.now();
insert log;
}
}
public class ExceptionExample {
public void riskyOperation() {
try {
// সম্ভাব্য ত্রুটিযুক্ত অপারেশন
Integer result = 10 / 0;
} catch (Exception e) {
CustomLogger.logException(e); // Custom Logger-এ লগ সংরক্ষণ
}
}
}
Log__c
নামে একটি Custom Object ব্যবহার করা হয়েছে।logException()
মেথডে Exception লগ করা হয়েছে, যা ডেটাবেজে সংরক্ষণ করা যায়।Debugging Techniques প্রোগ্রাম চলাকালীন ত্রুটি ও অপ্রত্যাশিত ফলাফল শনাক্ত ও সমাধানে সহায়ক। Apex-এ বেশ কিছু সাধারণ Debugging Techniques ব্যবহৃত হয়।
System.debug() Apex-এ সবচেয়ে সাধারণ ডিবাগিং টুল, যা কোডের বিভিন্ন স্থানে ভেরিয়েবল বা লজিক্যাল স্টেট প্রিন্ট করে, যাতে ডিবাগিং সহজ হয়।
public class DebugExample {
public void debugTest() {
Integer a = 10;
Integer b = 0;
System.debug('Value of a: ' + a);
System.debug('Value of b: ' + b);
try {
Integer result = a / b;
} catch (Exception e) {
System.debug('Error: Division by zero');
}
}
}
Salesforce প্ল্যাটফর্মে Debug Logs ব্যবহার করে Session এবং Workflow ট্র্যাক করা যায়। Debug Logs Salesforce UI থেকে এনাবল করা যায়, যেখানে Apex Code, Workflow, Validation Rules, এবং SOQL Query Execution-সহ প্রায় সব কার্যক্রমের লগ দেখা যায়।
Developer Console Apex কোডের ত্রুটি ও কার্যক্রম অনুসন্ধানে সহায়ক। এটি Debug Logs বিশ্লেষণ, Query Editor, এবং Execution Log দেখার জন্য একটি কার্যকরী টুল।
Debug Levels দিয়ে Logging Level নির্ধারণ করা যায়, যেমন INFO, DEBUG, WARN, ERROR। এটি ডিবাগ লেভেল অনুযায়ী নির্দিষ্ট তথ্য দেখতে সহায়ক।
Checkpoint ব্যবহার করে কোডের নির্দিষ্ট স্থানে লগ বা ভেরিয়েবলের মান ট্র্যাক করা যায়। এটি Debug Logs-এ ভেরিয়েবল ও স্টেট পরীক্ষা করতে সহায়ক।
বিশ্লেষণমূলক Logging ব্যবহার: Exception Logging করতে হলে গুরুত্বপূর্ণ তথ্য যেমন Exception Message, Stack Trace, Timestamp লগ করা উচিত।
Debug Log সঠিক লেভেলে সেট করুন: Logging Level অতিরিক্তভাবে সেট করা উচিত নয়; শুধু প্রয়োজনীয় তথ্য দেখতে DEBUG
বা INFO
ব্যবহার করা ভালো।
Sensitive Data Logging এড়িয়ে চলুন: ব্যক্তিগত তথ্য বা সংবেদনশীল ডেটা Logging এড়িয়ে চলুন।
Custom Logging Database Limits মেনে চলুন: Custom Logging-এ অতিরিক্ত ডেটা ইনসার্ট না করা ভালো, কারণ Salesforce এর ডেটাবেজ গভর্নর লিমিট আছে।
Exception Logging এবং Debugging Techniques ব্যবহার করে Apex কোডে ত্রুটি পরিচালনা ও বিশ্লেষণ করা আরও কার্যকর ও সহজ হয়, যা প্রোগ্রামিং এর উন্নত মান নিশ্চিত করে।
Read more